<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	</body>
	<script>
		// 常见的内置错误
		// 1. ReferenceError: 引用的变量不存在
		console.log(a); // ReferenceError: a is not undefined
		console.log("------"); // 没有捕获error，下面的代码不会执行 
		
		// 2.TypeError: 数据类型不正确的错误
		let b;
		console.log(b.xxx); // TypeError: Cannot read property 'xxx' of undefined
		b = {};
		b.xxx(); // TypeError: b.xxx is not a function
		
		// 3. RangError: 数据值不在其所允许的范围内,
		function fn(){
			fn()
		}
		fn() // RangError: Maximum call stack size exceeded
		
		// 4. SyntaxError: 语法错误
		const c = """" // SyntaxError: Unexpected string
		
		// 抛出错误 throw error
		function something(){
			if(Date.now()%2 === 1){
				console.log('当前时间为奇数，可以执行任务');
			} else { // 如果时间是偶数抛出异常，由调用来处理
				throw new Error('当前时间为偶数无法执行任务');
			}
		}
		
		try{
			something();
		} catch(error){
			alert(error.message)
		}
		
	</script>
</html>
